﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DA_OOMModel;

namespace DaCredito
{
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {

          /*  MenuItem loteste = this.NavigationMenu.FindItem("Home");
            loteste.Enabled = false;
            this.NavigationMenu.Items.Remove(loteste);
            */

            Usuario loUsuario = (Usuario)Session["Usuario"];
          

            //this.ConstroiMenu();
            this.OrganizaMenu(loUsuario);
        }
       
        private void OrganizaMenu(Usuario aoUsuario)
        {
            this.Adiciona("Início", "~/Default.aspx");
            
            if (aoUsuario == null || aoUsuario.UsrTpUsuario == null)
            {
                
               
                        
            }
            else
            {
                switch (aoUsuario.UsrTpUsuario)
                {

                    case TipoUsuario.Gestor:
                       
                        this.Adiciona("Cadastro", null);
                        this.Adiciona("Cadastro/Cliente", "~/CadastroCliente.aspx");
                        this.Adiciona("Cadastro/Sacado","~/CadastroSacado.aspx");
                        this.Adiciona("Cadastro/Usuário", "~/CadastroUsuario.aspx");
                        this.Adiciona("Operações", null);
                        this.Adiciona("Operações/Efetuar repasse", "~/RegistroRepasse.aspx");
                        this.Adiciona("Operações/Emissão de boleto", "~/EmissaoBoleto.aspx");
                        this.Adiciona("Operações/Emissão de 2ª via de documento", "~/EmissaoSegundaViaDocumento.aspx");
                        this.Adiciona("Operações/Exclusão de transação", "~/EfetuarRepeasse.aspx");
                        this.Adiciona("Parametrização",  null);
                        this.Adiciona("Parametrização/Dados bancários", "~/CadastroDadosBancarios.aspx");
                        this.Adiciona("Relatórios", null);
                        this.Adiciona("Relatórios/Clientes", "~/RPTClientes.aspx");
                        this.Adiciona("Relatórios/Fechamento de caixa", "~/CadastroDadosBancarios.aspx");
                        this.Adiciona("Relatórios/Repasses", "~/RPTRepasses.aspx");
                        this.Adiciona("Relatórios/Recebimentos", "~/RPTRecebimentos.aspx");
                        this.Adiciona("Relatórios/Recebimentos dos clientes", "~/CadastroDadosBancarios.aspx");

                        
                        break;
                    case TipoUsuario.AdministradorCliente:
                         
                        this.Adiciona("Cadastro", null);
                        this.Adiciona("Cadastro/Cliente", "~/CadastroCliente.aspx");
                        this.Adiciona("Cadastro/Sacado", "~/CadastroSacado.aspx");
                        this.Adiciona("Cadastro/Usuário","~/CadastroUsuario.aspx");
                        this.Adiciona("Operações", null);
                        this.Adiciona("Operações/Efetuar repasse", "~/RegistroRepasse.aspx");
                        this.Adiciona("Operações/Emissão de boleto", "~/EmissaoBoleto.aspx");
                        this.Adiciona("Operações/Emissão de 2ª via de documento", "~/EmissaoSegundaViaDocumento.aspx");
                        this.Adiciona("Operações/Exclusão de transação", "~/EfetuarRepeasse.aspx");
                        this.Adiciona("Parametrização",  null);
                        this.Adiciona("Parametrização/Dados bancários", "~/CadastroDadosBancarios.aspx");
                        this.Adiciona("Relatórios", null);
                        this.Adiciona("Relatórios/Clientes", "~/RPTClientes.aspx");
                        this.Adiciona("Relatórios/Fechamento de caixa", "~/CadastroDadosBancarios.aspx");
                        this.Adiciona("Relatórios/Repasses", "~/RPTRepasses.aspx");
                        this.Adiciona("Relatórios/Recebimentos", "~/RPTRecebimentos.aspx");
                        this.Adiciona("Relatórios/Recebimentos dos clientes", "~/CadastroDadosBancarios.aspx");

                        break;

                    case TipoUsuario.UsuarioCliente:
                       
                        this.Adiciona("Cadastro", null);
                        this.Adiciona("Cadastro/Cliente", "~/CadastroCliente.aspx");
                        this.Adiciona("Cadastro/Sacado", "~/CadastroSacado.aspx");
                        this.Adiciona("Cadastro/Usuário","~/CadastroUsuario.aspx");
                        this.Adiciona("Operações", null);
                        this.Adiciona("Operações/Efetuar repasse", "~/RegistroRepasse.aspx");
                        this.Adiciona("Operações/Emissão de boleto", "~/EmissaoBoleto.aspx");
                        this.Adiciona("Operações/Emissão de 2ª via de documento", "~/EmissaoSegundaViaDocumento.aspx");
                        this.Adiciona("Operações/Exclusão de transação", "~/EfetuarRepeasse.aspx");
                        this.Adiciona("Parametrização",  null);
                        this.Adiciona("Parametrização/Dados bancários", "~/CadastroDadosBancarios.aspx");
                        this.Adiciona("Relatórios", null);
                        this.Adiciona("Relatórios/Clientes", "~/RPTClientes.aspx");
                        this.Adiciona("Relatórios/Fechamento de caixa", "~/CadastroDadosBancarios.aspx");
                        this.Adiciona("Relatórios/Repasses", "~/RPTRepasses.aspx");
                        this.Adiciona("Relatórios/Recebimentos", "~/RPTTransacoes.aspx");
                        this.Adiciona("Relatórios/Recebimentos dos clientes", "~/CadastroDadosBancarios.aspx");


                        break;

                    default:


                        break;

                }
            }

            this.Adiciona("Sobre", "~/About.aspx");   

        }
        private void HabilitaItensMenu()
        {
            /*
            MenuItemCollection lo = this.NavigationMenu.Items;
            foreach (string lsItemMenu in aoListaItensMenu)
            {
                
            }*/
          /*  MenuItem loteste = this.NavigationMenu.FindItem("Home");
            loteste.Enabled = false;
            this.NavigationMenu.Items.Remove(loteste);*/
            
        }
        private void DesabilitaTodosItensMenu()
        {
            this.NavigationMenu.Items.Remove(this.NavigationMenu.FindItem("Cadastro/Cliente"));
          /*  this.NavigationMenu.Items.Remove(this.NavigationMenu.FindItem("Cadastro"));
            this.NavigationMenu.Items.Remove(this.NavigationMenu.FindItem("Parametrização"));*/
        }
        private void ConstroiMenu()
        {
            this.Adiciona("Início", "~/Default.aspx");
            this.Adiciona("Cadastro", null);
            this.Adiciona("Cadastro/Cliente", "~/CadastroCliente.aspx");
            this.Adiciona("Cadastro/Usuário","~/CadastroUsuario.aspx");
            this.Adiciona("Parametrização",  null);
            this.Adiciona("Parametrização/Dados bancários", "~/CadastroDadosBancarios.aspx");
            this.Adiciona("Sobre","~/About.aspx");
            

            /*
            this.NavigationMenu.Items.Add(new MenuItem("Início", "Início", null,"~/Default.aspx"));

            MenuItem loMenuItem = new MenuItem("Cadastro", "Cadastro", null,null);
            this.NavigationMenu.Items.Add(loMenuItem);
            loMenuItem.ChildItems.Add(new MenuItem("Cliente", "Cliente", null,"~/CadastroCliente.aspx"));
            loMenuItem.ChildItems.Add(new MenuItem("Usuário", "Usuário", null,"~/CadastroUsuario.aspx"));

            loMenuItem = new MenuItem("Parametrização", "Parametrização", null,null);
            this.NavigationMenu.Items.Add(loMenuItem);
            loMenuItem.ChildItems.Add(new MenuItem("Dados bancários", "Dados bancários", null,"~/CadastroDadosBancarios.aspx"));
            
            loMenuItem = new MenuItem("Sobre", "Sobre", null,"~/About.aspx");
            this.NavigationMenu.Items.Add(loMenuItem);*/
                        
        }
        private void Adiciona(string asCaminhoMenu, string asUrl)
        {
            int aiPosicaoUltimaBarra = asCaminhoMenu.LastIndexOf('/');
            string asCaminho = null;
            string asItemSemCaminho = null;

            if (aiPosicaoUltimaBarra > 0)
            {
                asCaminho = asCaminhoMenu.Substring(0, aiPosicaoUltimaBarra);
                asItemSemCaminho = asCaminhoMenu.Substring(aiPosicaoUltimaBarra + 1, asCaminhoMenu.Length - aiPosicaoUltimaBarra - 1);
            }
            else
            {
                asItemSemCaminho = asCaminhoMenu;
            }

            MenuItem loMenuItem = new MenuItem(asItemSemCaminho, asItemSemCaminho, null, asUrl);

            if (asCaminho == null || asCaminho.Trim() == "")
            {
                this.NavigationMenu.Items.Add(loMenuItem);
            }
            else
            {
             
                MenuItem loMenuItemParent = this.NavigationMenu.FindItem(asCaminho);

                if (loMenuItemParent != null)
                {

                    loMenuItemParent.ChildItems.Add(loMenuItem);
                }
            }
        }
    }
}
